home *** CD-ROM | disk | FTP | other *** search
- #
- # Creating the spoon itself...
- #
-
- scl_x = 1 / 4;
- scl_y = 1;
- scl_z = 1;
-
- shift = 0.05 * scl_x;
-
- knots = list (
-
- list ( KV_FLOAT ),
- list ( KV_FLOAT )
-
- # list ( 0, 0, 0, 1, 2, 2, 2 )
- # list ( 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6 ),
- );
-
- sp_mesh = list (
-
- list ( ctlpt ( E3, -0.4, 0, 0.1 ),
- ctlpt ( E3, -0.4, 0, 0.1 ),
- ctlpt ( E3, -0.4, 0, 0.1 ),
- ctlpt ( E3, -0.4, 0, 0.1 ) ),
-
- list ( ctlpt ( E3, -0.39, -0.1, 0.1 ),
- ctlpt ( E3, -0.39, -0.05, 0.08 ),
- ctlpt ( E3, -0.39, 0.05, 0.08 ),
- ctlpt ( E3, -0.39, 0.1, 0.1 ) ),
-
- list ( ctlpt ( E3, -0.2, -0.2, 0.1 ),
- ctlpt ( E3, -0.2, -0.15, -0.04 ),
- ctlpt ( E3, -0.2, 0.15, -0.04 ),
- ctlpt ( E3, -0.2, 0.2, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.05, -0.25, 0.1 ),
- ctlpt ( E3, 0.05, -0.17, -0.2 ),
- ctlpt ( E3, 0.05, 0.17, -0.2 ),
- ctlpt ( E3, 0.05, 0.25, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.2, -0.2, 0.1 ),
- ctlpt ( E3, 0.2, -0.1, -0.02 ),
- ctlpt ( E3, 0.2, 0.1, -0.02 ),
- ctlpt ( E3, 0.2, 0.2, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.29, -0.1, 0.1 ),
- ctlpt ( E3, 0.29, -0.05, 0.1 ),
- ctlpt ( E3, 0.29, 0.05, 0.1 ),
- ctlpt ( E3, 0.29, 0.1, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
- ctlpt ( E3, 0.3, -0.025, 0.1+1.5*shift ),
- ctlpt ( E3, 0.3, 0.025, 0.1+1.5*shift ),
- ctlpt ( E3, 0.3, 0.05, 0.1 ) )
- comment &
- list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
- ctlpt ( E3, 0.3, -0.005, 0.1 ),
- ctlpt ( E3, 0.3, 0.005, 0.1 ),
- ctlpt ( E3, 0.3, 0.05, 0.1 ) )
- &
- );
-
- # sp_srf = sbspline ( 3, 3, sp_mesh, knots );
- sp_srf = sbezier ( sp_mesh );
-
- bk_mesh = list (
- comment &
- list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
- ctlpt ( E3, 0.3, -0.005, 0.1 ),
- ctlpt ( E3, 0.3, 0.005, 0.1 ),
- ctlpt ( E3, 0.3, 0.05, 0.1 ) ),
- &
- list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
- ctlpt ( E3, 0.3, -0.005, 0.1-shift ),
- ctlpt ( E3, 0.3, 0.005, 0.1-shift ),
- ctlpt ( E3, 0.3, 0.05, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.29, -0.101, 0.1 ),
- ctlpt ( E3, 0.29, -0.051, 0.05 ),
- ctlpt ( E3, 0.29, 0.051, 0.05 ),
- ctlpt ( E3, 0.29, 0.101, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.2, -0.201, 0.1 ),
- ctlpt ( E3, 0.2, -0.101, -0.1 ),
- ctlpt ( E3, 0.2, 0.101, -0.1 ),
- ctlpt ( E3, 0.2, 0.201, 0.1 ) ),
-
- list ( ctlpt ( E3, 0.05, -0.251, 0.1 ),
- ctlpt ( E3, 0.05, -0.171, -0.23 ),
- ctlpt ( E3, 0.05, 0.171, -0.23 ),
- ctlpt ( E3, 0.05, 0.251, 0.1 ) ),
-
- list ( ctlpt ( E3, -0.2, -0.201, 0.1 ),
- ctlpt ( E3, -0.2, -0.151, -0.08 ),
- ctlpt ( E3, -0.2, 0.151, -0.08 ),
- ctlpt ( E3, -0.2, 0.201, 0.1 ) ),
-
- list ( ctlpt ( E3, -0.39, -0.101, 0.1 ),
- ctlpt ( E3, -0.39, -0.051, 0.05 ),
- ctlpt ( E3, -0.39, 0.051, 0.05 ),
- ctlpt ( E3, -0.39, 0.101, 0.1 ) ),
-
- list ( ctlpt ( E3, -0.4, 0.001, 0.1 ),
- ctlpt ( E3, -0.4, 0.001, 0.1 ),
- ctlpt ( E3, -0.4, 0.001, 0.1 ),
- ctlpt ( E3, -0.4, 0.001, 0.1 ) )
-
- );
-
-
- # bk_srf = sbspline ( 3, 3, bk_mesh, knots);
- bk_srf = sbezier ( bk_mesh );
-
- #
- # Creating spoon handle...
- #
-
- #
- # Creating sections...
- #
-
- center1 = Vector ( 0.3, 0, 0.1 );
- center2 = Vector ( 0.6, 0, 0.25 );
- center3 = Vector ( 1.6, 0, 0.17 );
- center4 = Vector ( 1.795, 0, 0.13 );
- center5 = Vector ( 1.8, 0, 0.13 );
-
- rad1 = 0.05;
- rad2 = 0.05;
- rad3 = 0.1;
- rad4 = 0.1;
- rad5 = 0;
-
- axesO = Vector ( 0, 0, 0 );
-
- sect1 = circle ( axesO, rad1 );
- sect2 = circle ( axesO, rad2 );
- sect3 = circle ( axesO, rad3 );
- sect4 = circle ( axesO, rad4 );
- sect5 = circle ( axesO, rad5 );
-
- # Scale circles...
-
- scl = Vector ( scl_x, scl_y, scl_z );
-
- sect1 = sect1 * Scale ( scl );
- sect2 = sect2 * Scale ( scl );
- sect3 = sect3 * Scale ( scl );
- sect4 = sect4 * Scale ( scl );
- sect5 = sect5 * Scale ( scl );
-
-
- # Rotate circles...
- sect1 = sect1 * RotY ( 90 );
- sect2 = sect2 * RotY ( 90 );
- sect3 = sect3 * RotY ( 90 );
- sect4 = sect4 * RotY ( 90 );
- sect5 = sect5 * RotY ( 90 );
-
-
- # Move circles to theirs position...
- sect1 = sect1 * Trans ( center1 );
- sect2 = sect2 * Trans ( center2 );
- sect3 = sect3 * Trans ( center3 );
- sect4 = sect4 * Trans ( center4 );
- sect5 = sect5 * Trans ( center5 );
-
-
- hspoon = sfromcrvs ( list ( sect1, sect2, sect3, sect4, sect5 ), 5 );
-
- # hspoon = hspoon * Trans ( Vector
-
- #
- # Whole the object...
-
- sp_color = cyan;
-
- color ( sp_srf, sp_color );
- color ( bk_srf, sp_color );
- color ( hspoon, sp_color );
-
- spoon = list ( bk_srf, sp_srf, hspoon );
-
- scl_factor = 1/2;
- short_it = Scale ( Vector ( scl_factor, scl_factor, scl_factor ) );
- spoon = spoon * short_it;
-
- # interact ( spoon );
- # view ( spoon, true );
- # view ( axes, false );
- # save ( "spoon", spoon );
- # exit();
- # free ( spoon );
-